POV-Ray : Newsgroups : povray.binaries.images : artistic water final - IRTC WIP : Re: artistic water final - IRTC WIP Server Time
6 Aug 2024 22:18:04 EDT (-0400)
  Re: artistic water final - IRTC WIP  
From: Mike Williams
Date: 17 Nov 2006 04:45:08
Message: <Iv3RkEA$IYXFFwU$@econym.demon.co.uk>
Wasn't it Tek who wrote:
>I had a similar idea, but the trouble is to fade in a different isosurface 
>on the foamy sections you need to know where those foamy sections are, i.e. 
>you need to modulate it by the wave function

It's not quite as complicated as that because your wave function
modulates the height, so you just need your blending function to be a
function of height. It doesn't need to know where the height comes from.

I quickly threw together this proof-of-concept. The actual functions I
use here are pretty naff, they just demonstrate a mechanism.

#version 3.6;
global_settings {assumed_gamma 1.0}
camera {location  <0,5,-10> look_at <0,0,0> angle 40}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
#include "functions.inc"


#declare WAVE = function {f_bozo(x,0,z)*2 +y -0.5}
#declare FOAM = function {f_bozo(x*10,y*10,z*10)-0.5}

#declare BLEND = function {
  WAVE(x,y,z) -
  FOAM(x,y,z) * (atan(y*20)+pi/2) *0.35
}  

isosurface {
  function { BLEND(x,y,z) }
        max_gradient 12
        contained_by{box{-3,3}}
        pigment { rgb <.1,.3,.6> }
}


(atan(y*20)+pi/2) goes smoothly from 0.05 to pi as y goes from -1 to +1,
so it adds more FOAM at the top of the WAVE. There are almost certainly
better functions to use.

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.